SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 52701: SAS® 9.4 Visual Analytics Designer reports fail to open when you log on to the SAS® Content Server

DetailsAboutRate It

When you open a SAS 9.4 Visual Analytics Designer report, part of that process involves logging on to the SAS 9.4 Content Server. When you try to open such a report, it fails with an internal 500 error during that logon process to the content server . When the problem occurs, a null-pointer exception is generated, along with a message stating that the file cannot be opened. The error, similar to the following, appears in the SAS Visual Analytics Designer log file (SASVisualAnalyticsDesigner6.4.log):

[DESIGNER   ] WARN  [tomcat-http--11] 2013-11-13 17:02:50,527 [ST-1092-p4mNZTZbenBaI5V5PRUa-cas:hiltjt] com.sas.services.webdav.DAVResource - GET status 500 (Internal Server Error) for /SASContentServer/repository/default/sasfolders/User%20Folders/xyz/My%20Folder/Demo/MyReport_2012(Report)
[DESIGNER   ] ERROR [tomcat-http--11] 2013-11-13 17:02:50,534 [ST-1092-p4mNZTZbenBaI5V5PRUa-cas:xyz] com.sas.mobiledesigner.api.services.reportlifecycle.impl.ReportLifecycleServiceImpl - Report could not be opened. Cause: null, Exception: java.lang.NullPointerException
java.lang.NullPointerException
	at com.sas.bidata.reportModel.ReportModelManager.setupPluggableData(ReportModelManager.java:145)
	at com.sas.bidata.reportModel.ReportModelManager.createCurrentMasterMidtierReport(ReportModelManager.java:352)
	at com.sas.mobiledesigner.api.services.reportlifecycle.impl.ReportLifecycleServiceImpl.openReportFromRepository(ReportLifecycleServiceImpl.java:385)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

In addition, there are also related, relevant errors in the SAS Content Server log file ( SASContentServer9.4.log):

2013-11-13 17:02:50,407 [tomcat-http--31] ERROR org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager - failed to read bundle: cafebabe-cafe-babe-cafe-babecafebabe: org.postgresql.util.PSQLException: No value specified for parameter 3.
2013-11-13 17:02:50,408 [tomcat-http--31] ERROR org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager - failed to write bundle: cafebabe-cafe-babe-cafe-babecafebabe
org.postgresql.util.PSQLException: No value specified for parameter 4.
	at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:216)

2014-11-13 17:02:66,478 [tomcat-http--31] INFO  com.sas.contentserver.core.TenantRepositoryImpl - Initializing new tenant id = 4

2013-11-13 17:02:67,480 [tomcat-http--64] ERROR com.sas.contentserver.core.TenantSharedItemStateManager - failed to write bundle: cafebabe-cafe-babe-cafe-babecafebabe
org.apache.jackrabbit.core.state.ItemStateException: failed to write bundle: cafebabe-cafe-babe-cafe-babecafebabe
	at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.storeBundle(BundleDbPersistenceManager.java:902)
	at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.putBundle(AbstractBundlePersistenceManager.java:769)
	at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.storeInternal(AbstractBundlePersistenceManager.java:686)
	at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.store(AbstractBundlePersistenceManager.java:563)
	at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.store(BundleDbPersistenceManager.java:477)
	at com.sas.contentserver.persistence.pool.TenantBundleDbPersistenceManager.store(TenantBundleDbPersistenceManager.java:606)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.createRootNodeState(SharedItemStateManager.java:1709)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.(SharedItemStateManager.java:215)
	at com.sas.contentserver.core.TenantSharedItemStateManager.getTenantSharedItemStateManager(TenantSharedItemStateManager.java:243)
	at com.sas.contentserver.core.TenantSharedItemStateManager.getItemState(TenantSharedItemStateManager.java:97)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:110)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:175)
	at org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:260)
	at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:161)
	at org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:382)
	at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:328)
	at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:555)
	at org.apache.jackrabbit.core.session.SessionItemOperation$4.perform(SessionItemOperation.java:97)
	at org.apache.jackrabbit.core.session.SessionItemOperation$4.perform(SessionItemOperation.java:93)
	at org.apache.jackrabbit.core.session.SessionItemOperation.perform(SessionItemOperation.java:187)
	at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
	at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:367)
	at org.apache.jackrabbit.core.SessionImpl.getItem(SessionImpl.java:792)
	at com.sas.contentserver.webdav.SASResourceFactoryImpl.getNode(SASResourceFactoryImpl.java:134)
	at com.sas.contentserver.webdav.SASResourceFactoryImpl.createResource(SASResourceFactoryImpl.java:47)
	at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
Caused by: org.postgresql.util.PSQLException: No value specified for parameter 4.
	at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:216)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:244)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:410)
	at org.apache.jackrabbit.core.util.db.ConnectionHelper.execute(ConnectionHelper.java:474)
	at com.sas.contentserver.db.util.TenantConnectionHelper.execute(TenantConnectionHelper.java:33)
	at org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyUpdate(ConnectionHelper.java:336)
	at org.apache.jackrabbit.core.util.db.ConnectionHelper$2.call(ConnectionHelper.java:324)
	at org.apache.jackrabbit.core.util.db.ConnectionHelper$2.call(ConnectionHelper.java:320)
	at org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:487)
	at org.apache.jackrabbit.core.util.db.ConnectionHelper.update(ConnectionHelper.java:320)
	at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.storeBundle(BundleDbPersistenceManager.java:888)
	...58 more message lines. . .

The problem occurs because SAS 9.4 allows the client machine to set a tenant ID by appending :TENANT_ID to the end of the password. However, the SAS Content Server prevents logging on by users with passwords that have the :TENANT_ID flag. In addition, the content server attempts to initialize a new tenant.

This problem only occurs in SAS 9.4 TS1M0, and there is no solution or workaround for the problem. However, the problem is fixed in the first maintenance release for SAS 9.4 (TS1M1) and later.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemBase SASMicrosoft Windows Server 2012 Datacenter9.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows 8.1 Enterprise x649.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows 8.1 Pro9.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows 8.1 Pro 32-bit9.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows Server 2008 R29.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows Server 2008 for x649.49.4_M19.4 TS1M09.4 TS1M1
Microsoft® Windows® for x649.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows 8 Enterprise x649.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows 8 Pro x649.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows 8.1 Enterprise 32-bit9.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows Server 2012 R2 Datacenter9.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows Server 2012 R2 Std9.49.4_M19.4 TS1M09.4 TS1M1
Microsoft Windows Server 2012 Std9.49.4_M19.4 TS1M09.4 TS1M1
Windows 7 Enterprise x649.49.4_M19.4 TS1M09.4 TS1M1
Windows 7 Professional x649.49.4_M19.4 TS1M09.4 TS1M1
64-bit Enabled AIX9.49.4_M19.4 TS1M09.4 TS1M1
64-bit Enabled HP-UX9.49.4_M19.4 TS1M09.4 TS1M1
64-bit Enabled Solaris9.49.4_M19.4 TS1M09.4 TS1M1
Linux for x649.49.4_M19.4 TS1M09.4 TS1M1
Solaris for x649.49.4_M19.4 TS1M09.4 TS1M1
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.